<?php
import('libs/bdd/ItfSql');

/**
 * Classe abstraite servant au gestionnaire de base de données
 * @author Gaétan Collaud
 */
abstract class AbstractSql implements ItfSql{

	/**
	 * Si la base de données supporte le type booléen
	 * @var boolean true si elle le supporte
	 */
	protected $boolSupport = true;

	/**
	 * @var int Nombre de requête effectuées
	 */
	private $nbr_queries = 0;

	/**
	 * @var array<String, float> Liste des temps d'éxécution pour la connexion, les requêtes et la déconnexion
	 */
	private $temps = array('connect' => 0, 'req' => 0, 'close' => 0);
	/**
	 * @var Ressource  Référence à la connexion
	 */
	protected $connect = false;

	/**
	 * Ajoute un temps d'éxécution
	 * @param flaod $time le temps
	 * @param String $type le type de requête (connect|req|close)
	 */
	protected final function addTime($time, $type = 'req'){
		if($type == 'req') $this->nbr_queries++;
		$this->temps[$type] += $time;
	}

	public final function getNbQueries(){
		return $this->nbr_queries;
	}

	public final function getTimeTotal(){
		return array_sum($this->temps);
	}

	public function isBoolSupport(){
		return $this->boolSupport;
	}
}

?>
